<?php
header("Content-Type: application/json");
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Allow-Headers: Content-Type");

// Manejo de solicitud OPTIONS
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    header("HTTP/1.1 200 OK");
    exit;
}

// Establecer la zona horaria para Ciudad de México
date_default_timezone_set('America/Mexico_City');

// Configuración de la base de datos
$host = "localhost";
$dbname = "u574302726_temperatura";
$user = "u574302726_Erik";
$pass = "Isa280681";

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass, [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
    ]);
} catch (PDOException $e) {
    echo json_encode(["status" => "error", "message" => "Error de conexión: " . $e->getMessage()]);
    exit;
}

// Obtener datos enviados
$data = json_decode(file_get_contents("php://input"), true);

// Verificar datos
if (!isset($data['temperatura'])) {
    echo json_encode(["status" => "error", "message" => "No se recibió el dato de temperatura"]);
    exit;
}

$temperatura = $data['temperatura'];

// Generar fecha y hora como texto con la zona horaria de México
$fecha_actual = date("Y-m-d"); // Formato: AAAA-MM-DD
$hora_actual = date("H:i:s");  // Formato: HH:MM:SS

// Si el ESP32 proporciona fecha y hora, puedes usarlas en lugar de generarlas
if (isset($data['fecha'])) {
    $fecha_actual = $data['fecha'];
}
if (isset($data['hora'])) {
    $hora_actual = $data['hora'];
}

try {
    // Insertar sin el campo id_usuario
    $stmt = $pdo->prepare("INSERT INTO registros_tempreatura (temperatura, fecha, hora) VALUES (:temperatura, :fecha, :hora)");
    $stmt->bindParam(":temperatura", $temperatura);
    $stmt->bindParam(":fecha", $fecha_actual);
    $stmt->bindParam(":hora", $hora_actual);
    $stmt->execute();
    
    $id_registro = $pdo->lastInsertId();
    
    echo json_encode([
        "status" => "success",
        "message" => "Temperatura registrada correctamente",
        "id_registro" => $id_registro,
        "temperatura" => $temperatura,
        "fecha" => $fecha_actual,
        "hora" => $hora_actual
    ]);
} catch (PDOException $e) {
    echo json_encode(["status" => "error", "message" => "Error al guardar: " . $e->getMessage()]);
}
?>